﻿
using System;
using System.Collections.Generic;
using System.Text;

namespace EC.Application.Interface
{
    using EC.Entity;
    using EC.Entity.Query;
    using EC.Entity.Request.PaymentRecord;
    using EC.Entity.Response.PaymentRecord;
    using EC.Entity.Tables;

    public interface PaymentRecordService
    {
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="id">编号</param>
        /// <returns></returns>
        PaymentRecordResponse Get(int id);

        /// <summary>
        /// 审核
        /// </summary>
        /// <returns></returns>
        JResult Audit(AuditRequest request);

        /// <summary>
        /// 确认付款
        /// </summary>
        JResult Confirm(ConfirmRequest request);

        /// <summary>
        /// 取消付款
        /// </summary>
        JResult Cancel(CancelRequest request);

        /// <summary>
        /// 取消付款
        /// </summary>
        JResult Undo(CancelRequest request);

        /// <summary>
        /// 恢复成功
        /// </summary>
        JResult ReturnSuccess(CancelRequest request);

        /// <summary>
        /// 重置
        /// </summary>
        /// <returns></returns>
        JResult Reset(int id);

        /// <summary>
        /// 批量添加
        /// </summary>
        /// <param name="paymentRecord"></param>
        JResult BatchAdd(List<BatchPaymentRecord> batchPaymentRecords, int userId, int merchantId);

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        DataGrid<PaymentRecordQueryResponse> GetPager(PaymentRecordQuery query);

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        DataGrid<PaymentRecordQueryResponse> GetMerchantPager(PaymentRecordQuery query);

        /// <summary>
        /// 商户导出查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        DataGrid<PaymentRecordQueryResponse> GetMerchantExportPager(PaymentRecordQuery query);

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        DataGrid<PaymentRecordQueryResponse> GetSyPager(PaymentRecordQuery query);
    }
}
